//package com.czxy.config;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.context.annotation.Bean;
//import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
//import org.springframework.security.config.annotation.web.builders.HttpSecurity;
//import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
//import org.springframework.security.core.userdetails.UserDetailsService;
//import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
//import org.springframework.stereotype.Component;
//import org.springframework.web.cors.CorsUtils;
//
///**
// * security安全框架
// *
// * Created by User on 2018/3/26.
// * @author likk
// */
////@Component
//public class WebSecurityConfigurer extends WebSecurityConfigurerAdapter {
//
//    @Autowired
//    private UserDetailsService userDetailsService;
//
//    @Autowired
//    private BCryptPasswordEncoder passwordEncoder;
//
//    @Value("${czxy.login.login-page}")
//    private String loginPage;
//    @Value("${czxy.login.default-success-url}")
//    private String defaultSuccessUrl;
//    @Value("${czxy.login.logout-success-url}")
//    private String logoutSuccessUrl;
//    @Value("${czxy.login.failure-url}")
//    private String failureUrl;
//
//    @Override
//    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
//        // 添加自定义认证，并指定密码使用BCrypt加密算法
//        auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder);
//    }
//
//    @Override
//    protected void configure(HttpSecurity http) throws Exception {
//
//        // 设置所有请求需要拥有安全ROLE_USER接收
//        http.authorizeRequests()
//                // 设置PreFlight请求放行，解决跨域请求发送PreFlight被拦截问题
//                .requestMatchers(CorsUtils::isPreFlightRequest).permitAll()
//                .antMatchers("/**").hasRole("USER")
//                .and()
//                // 设置登录处理url，登录页面
//                .formLogin().loginProcessingUrl("/login").loginPage(loginPage).defaultSuccessUrl(defaultSuccessUrl)
//                .failureUrl(failureUrl)
//                .and()
//                // 设置注销请求谁都可以访问
//                .logout().permitAll().logoutSuccessUrl(logoutSuccessUrl)
//                .and()
//                // 解决页面frame框架的显示问题
//                .headers().frameOptions().sameOrigin()
//                .and()
//                // 禁用csrf
//                .csrf().disable();
//
//    }
//
//
//    @Bean
//    public BCryptPasswordEncoder bcryptEncoder(){
//        return new BCryptPasswordEncoder();
//    }
//}
